home *** CD-ROM | disk | FTP | other *** search
/ Magnum One / Magnum One (Mid-American Digital) (Disc Manufacturing).iso / d20 / eft100.arc / ARCHEAD.BTM next >
Text File  |  1991-07-03  |  6KB  |  184 lines

  1. @echo off
  2. rem THIS WILL ONLY RUN WITH *** 4DOS ***
  3. rem ╔══════════════════════════════════════════════════════════════════════════╗
  4. rem ║                                                                          ║
  5. rem ║ ArcHead V 0.2 BONUS Archive header and unwanted files manipulator        ║
  6. rem ║               for use with Enhanced File Transfer                        ║
  7. rem ║                                                                          ║
  8. rem ║ Variables to adapt to your system:                                       ║
  9. rem ║                                                                          ║
  10. rem ║     headfilename ... name of PD and CUG header file, will be inserted    ║
  11. rem ║                      as archive header                                   ║
  12. rem ║                                                                          ║
  13. rem ║     unwantedfname ... plain ASCII file contains names of unwanted        ║
  14. rem ║                       files (e.g. commericals from other BBSs), one file ║
  15. rem ║                       per line. All files listed here will be erased     ║
  16. rem ║                       from the archive.                                  ║
  17. rem ║                                                                          ║
  18. rem ║     Note! Exclamation mark parameter "!" great for usage under           ║
  19. rem ║     EFT: Switches to non color batch mode ,so that ArcHead will stay     ║
  20. rem ║     in EFT window. Example:                                              ║
  21. rem ║                                                                          ║
  22. rem ║     ArcHead C! pct7_1v8.zip pct7_2v8.zip new*.arj                        ║
  23. rem ║                                                                          ║
  24. rem ╚══════════════════════════════════════════════════════════════════════════╝
  25. setlocal
  26. set version = 0.2
  27.  
  28. if %@len[%1] EQ 1 goto headparmok
  29. if %@len[%1] EQ 2 goto headparmok
  30. goto noheadparm
  31. :headparmok
  32.  
  33. set unwantedfname = x:\dos\arc\unwanted.fil
  34. set headfilename  = x:\dos\utils\w.i
  35. if (%@substr[%@upper[%1],0,1]) == (C) set headfilename = x:\dos\utils\wi.cug
  36. if (%@substr[%@upper[%1],1,1]) == (!) set quiet = ON
  37. set lineheader    = x:\dos\utils\w.i2
  38.  
  39. gosub archeadline
  40.  
  41. if (%2) == () goto nofilenames
  42.  
  43. :loop
  44.  
  45. if (%2) == () goto end
  46. iff (%@ext[%2]) NE () then^set parm=%@name[%2].%@ext[%2]^
  47.                       else^set parm=%@name[%2]^
  48. endiff
  49. iff (%@path[%2]) NE () then^pushd^cdd %@substr[%@path[%2],0,%@eval[%@len[%@path[%2]]-1]] len^endiff
  50. if (%@ext[%parm]) == () goto noextension
  51.  
  52. :extension
  53. for %filename in (%parm) do gosub %@ext[%filename]
  54. goto goloop
  55.  
  56. :noextension
  57. for %%filename in (%parm.zip %parm.lzh %parm.ice %parm.arj %parm.zoo %parm.dwc %parm.sdn %parm.pak %parm.arc) do gosub %@ext[%filename]
  58.  
  59. :goloop
  60. if (%@path[%2]) NE () popd
  61. shift
  62. goto loop
  63.  
  64. :noheadparm
  65. gosub archeadline
  66. iff (%quiet) == () color bright green on black
  67. text
  68.  
  69.   Syntax: ArcHead {C|P}{!} [[Lw:][\Pfad\Filename.[Ext]] ...]
  70.                    !    !  !
  71.                    CUG / PUBLIC header
  72.                         !  !
  73.                         !  File(s)
  74.                         !
  75.                         Optional exclamation mark switches to
  76.                         non color batch mode
  77.  
  78. endtext
  79. iff (%quiet) == () color white on black
  80. goto end
  81.  
  82. :nofilenames
  83. for %filename in (*.zip *.lzh *.ice *.arj *.zoo *.dwc *.sdn *.pak *.arc) do gosub %@ext[%filename]
  84. goto end
  85.  
  86. :zip
  87. gosub display_del
  88. pkzip -d -! %filename  @%unwantedfname > NUL:
  89. gosub display_header
  90. pkzip -z -! %filename < %headfilename  > NUL:
  91. return
  92.  
  93. :lzh
  94. :ice
  95. gosub display_del
  96. lha d -wc:\tmp -m %filename < %unwantedfname > NUL:
  97. if (%@ext[%filename])==(ICE) ren %filename %@name[%filename].LZH
  98. return
  99.  
  100. :arj
  101. gosub display_del
  102. arj d -yi %filename !%unwantedfname > NUL:
  103. gosub display_header
  104. arj c -yi %filename -z%headfilename > NUL:
  105. return
  106.  
  107. :zoo
  108. set line = 1
  109. set old  =
  110. :zoo_weiter
  111. set new  = %@line[x:\dos\arc\unwanted.fil,%line]
  112. if %old == %new return
  113. zoo -delete %filename %new > NUL:
  114. gosub display_status
  115. set old = %new
  116. set line = %@eval[%line + 1]
  117. goto zoo_weiter
  118.  
  119. :dwc
  120. set line = 1
  121. set old  =
  122. :dwc_weiter
  123. set new  = %@line[x:\dos\arc\unwanted.fil,%line]
  124. if %old == %new goto dwc_end
  125. gosub display_status
  126. dwc d! %filename %new
  127. set old = %new
  128. set line = %@eval[%line + 1]
  129. goto dwc_weiter
  130. :dwc_end
  131. gosub display_header
  132. dwc a! %filename %headfilename
  133. dwc h! %filename %@name[%headfilename].%@ext[%headfilename]
  134. return
  135.  
  136. :sdn
  137. :pak
  138. gosub display_del
  139. pak d %filename @%unwantedfname > NUL:
  140. gosub display_header
  141. pak h %filename < %headfilename > NUL:
  142. if (%@ext[%filename])==(SDN) ren %filename %@name[%filename].PAK
  143. return
  144.  
  145. :arc
  146. gosub display_del
  147. pkpak -x %filename < %lineheader > NUL:
  148. gosub display_header
  149. pkpak -d %filename @%unwantedfname > NUL:
  150. return
  151.  
  152. :display_status
  153. echo    deleting "%new" in archive %filename
  154. return
  155.  
  156. :display_header
  157. iff (%quiet) == () color green on black
  158. echo    inserting header %headfilename
  159. iff (%quiet) == () color white on black
  160. return
  161.  
  162. :display_del
  163. iff (%quiet) == () color green on black
  164. echo    deleting files in %unwantedfname from %filename
  165. iff (%quiet) == () color white on black
  166. return
  167.  
  168. :archeadline
  169. iff (%quiet) == () then^
  170.   cls^
  171.   color bright white on blue^
  172.   echo  ■ ArcHead V%version   Archive header and unwanted files manipulator             ^
  173.   color white on black^
  174. else^
  175.   echo  ■ ArcHead V%version^
  176. endiff
  177. return
  178.  
  179. :end
  180. iff (%quiet) == () color green on black
  181. echo  ■ Bye from ArcHead V%version (C) The Wizard's Inn II BBS ++49-2307-21968
  182. iff (%quiet) == () color white on black
  183. endlocal
  184.